package com.wicket.okrapp.integration.dto;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc AnalysisTargetBelongCycleCalcFormulaComReqDto
 * @使用场景
 */
@Data
public class AnalysisTargetBelongCycleCalcFormulaComReqDto
  extends BaseDto
  implements Serializable {

  /**
   * 目标归属周期ID
   */
  @NotNull(message = "目标归属周期ID不能为空")
  @ApiModelProperty("目标归属周期ID")
  private String targetAttributionCycleId;

  /**
   * 评价模板商业参数
   */
  @NotNull(message = "评价模板商业参数不能为空")
  @ApiModelProperty("评价模板商业参数")
  private String schemeDataPara;

  /**
   * 汇报类型 ARTIFICIAL_REPORT:人工汇报 SEMIAUTOMATIC_REPORT:半自动汇报 AUTO_REPORT:全自动汇报
   */
  @NotNull(message = "汇报类型不能为空")
  @ApiModelProperty("汇报类型")
  private String reportType;

  /**
   * 末级周期类型 HALF_YEAR:半年 QUARTER:季度 DOUBLE_MONTHS:双月 MONTH:月 DOUBLE_WEEKS:双周 WEEK:周 DISABLE:不启用
   */
  @NotNull(message = "末级周期类型不能为空")
  @ApiModelProperty("末级周期类型")
  private String lastCycleType;

  /**
   * 无实际值指标是否开启进度汇报 TRUE:是 FALSE:否
   */
  @ApiModelProperty("无实际值指标是否开启进度汇报")
  private String noPracticalValueObjIsProgReport;

  /**
   * 目标分类目标得分是否开启本级得分 TRUE:是 FALSE:否
   */
  @NotNull(message = "目标分类目标得分是否开启本级得分不能为空")
  @ApiModelProperty("目标分类目标得分是否开启本级得分")
  private String actualScoreIsOpenLocalLevelScore;

  /**
   * 指标目标得分是否开启本级得分 TRUE:是 FALSE:否
   */
  @NotNull(message = "指标目标得分是否开启本级得分不能为空")
  @ApiModelProperty("指标目标得分是否开启本级得分")
  private String objectiveActualScoreIsOpenLocalLevelScore;

  /**
   * 开启主客观评分周期类型 LAST_CYCLE:末级周期 UNLIMITED:不限
   */
  @NotNull(message = "开启主客观评分周期类型不能为空")
  @ApiModelProperty("开启主客观评分周期类型")
  private String enableSubjectiveRatingCycleType;

  /**
   * 创建于空间ID
   */
  @NotNull(message = "创建于空间ID不能为空")
  @ApiModelProperty("创建于空间ID")
  private String spaceId;

}
